package com.tienon.message.thread.task;

import javax.annotation.Resource;

import org.apache.log4j.Logger;
import org.springframework.beans.factory.config.ConfigurableBeanFactory;
import org.springframework.context.annotation.Scope;
import org.springframework.stereotype.Component;

import org.springframework.transaction.annotation.Transactional;

import com.tienon.message.entity.Raw_msg_batch;
import com.tienon.message.mapper.Raw_msg_batchMapper;
/**
 * 
 * 原始批处理表子任务类
 * 主要职责是插入数据到数据库
 * 实现事务功能
 * 
 * @author xiuye
 *
 */
@Component
@Scope(ConfigurableBeanFactory.SCOPE_PROTOTYPE)
@Transactional
public class RawMsgBatchDBSubTask {

	private static Logger log = Logger.getLogger(RawMsgBatchDBSubTask.class);

	@Resource
	private Raw_msg_batchMapper rawBatchDao;

	/**
	 * 将原始表数据插入数据库
	 * @param data
	 */
	public void addRawMsgBatch(Raw_msg_batch data) {

		/**
		 * 先获取主键
		 * 然后设置data的主键值（因为开始的时候data没有流水号）
		 * 流水号的生成方式是oracle数据库的序列号，如需要其他
		 * 生成方式可以自行更改，但保证唯一
		 */
		int serial = rawBatchDao.getKey();
		data.setSerail(serial);
		
		log.debug("批次号：" + data.getBatId() + "流水号：" + data.getSerail() + "内容:"
				+ data.getMsg() + "正在插入Raw_msg_batch数据表");
		/**
		 * 调用mapper执行插入数据库操作
		 */
		rawBatchDao.insertSelective(data);

	}

}
